//
// Created by hjie on 23-6-27.
//

#pragma once

#include <string>
#include <memory>
#include <map>
#include <vector>
#include <set>

struct SdpDataForOne
{
    std::string type;
    std::string sdp;
    std::string user_id;
    std::vector<std::string> m_candidate_vec;
    bool is_subscribe;
};

class DataManager;
class UserAssociationManager;

class UserAssociation
{
    friend class DataManager;
public:
    UserAssociation(DataManager * data_manager, UserAssociationManager * user_association_mgr);
    ~UserAssociation();
private:
    DataManager * m_data_manager;
    UserAssociationManager * m_user_association_mgr;
public:
    std::string m_user_id;
    std::vector<SdpDataForOne> m_sdp_data_for_one;
public:
    std::set<std::string> m_publish_set;
    std::set<std::string> m_subscribe_set;
public:
    bool m_is_publish_stream;
};


